The samples were first compared cell cycle phase-wise, since the dataset showed clear separation based on phase classification, but its structure otherwise made biological sense. In the UMAP the two ice conditions co-located very clearly, which prompted the notion of treating them as one for the DEG analysis. This was corroborated by a DEG testing between the two ice conditions, which for the samples as wholes yielded three DEGs, non with significant p-values. Phase-wise no DEGs were found.
Based off of that, three comparisons were carried out:
37c with triptolide VS ice
37c without triptolide VS ice
37c without triptolide VS 37c without triptolide
The comparisons were first made cell cycle phase-wise (G1, G2M, S), then the intersection of the found DEGs was taken. This would give the differentially expressed genes that most characterizes a given condition, without cell cycle-specific genes.
The DEG testing was performed with Seurat’s FindMarkers function, testing performed only on highly variable genes (HVGs). The intersection was taken with R’s intersect function for sets.
Gene signatures
The gene signature scores were calculated and visualized similar to the procedure for the IER signature.
Attaching SeuratObject
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
feats <-c( degs[["37c_t"]][["G1"]] %>%head(., n =15) %>% rownames, degs[["37c_t"]][["G1"]] %>%tail(., n =15) %>% rownames)p1 <-DotPlot(sobj, features = feats, cols = cols_features) +theme(axis.text.x =element_text(angle =45, vjust =1, hjust=1))feats <-c( degs[["37c_t"]][["G2M"]] %>%head(., n =15) %>% rownames, degs[["37c_t"]][["G2M"]] %>%tail(., n =15) %>% rownames)p2 <-DotPlot(sobj, features = feats, cols = cols_features) +theme(axis.text.x =element_text(angle =45, vjust =1, hjust=1))feats <-c( degs[["37c_t"]][["S"]] %>%head(., n =15) %>% rownames, degs[["37c_t"]][["S"]] %>%tail(., n =15) %>% rownames)p3 <-DotPlot(sobj, features = feats, cols = cols_features) +theme(axis.text.x =element_text(angle =45, vjust =1, hjust=1))
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
comp <-"37c_t"n_genes <-15plot <-one_dot_plot(comparison = comp, phase ="G1") /one_dot_plot(comparison = comp, phase ="G2M") /one_dot_plot(comparison = comp, phase ="S") +plot_annotation(title =str_c("DEGs between ", comparisons[[comp]][[1]]," and ","(", str_flatten(comparisons[[comp]][[2]], " + "), ")" ),subtitle ="",caption =str_c("The top ", n_genes, " DEGs for ", comp[[1]]," and the top ", n_genes, " DEGs for ", str_flatten(comparisons[[comp]][[2]], " + ") ))plot
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
all_phases_dot_plot <- \(comparison ="37c_t", n_genes =15) { plot <-one_dot_plot(comparison = comparison, phase ="G1") /one_dot_plot(comparison = comparison, phase ="G2M") /one_dot_plot(comparison = comparison, phase ="S") +plot_annotation(title =str_c("DEGs between ", comparisons[[comparison]][[1]]," and ",str_flatten(comparisons[[comparison]][[2]], " + ") ),subtitle ="Cell cycle phase-wise",caption =str_c("The top ", n_genes, " DEGs for ", comparisons[[comparison]][[1]]," (left) and the top ", n_genes, " DEGs for ", str_flatten(comparisons[[comparison]][[2]], " + ")," (right)" ) ) plot %>% return}all_phases_dot_plot()
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Dot plots overlapping DEGs
one_dot_plot_overlaps <- \(comparison ="37c_t", n_genes =15) { feats <-c( overlaps[[comparison]] %>%head(., n = n_genes) %>% rownames, overlaps[[comparison]] %>%tail(., n = n_genes) %>% rownames ) plot <-DotPlot(sobj, features = feats, cols = cols_features) +theme(axis.text.x =element_text(angle =45, vjust =1, hjust=1) ) +labs(title =str_c("DEGs between ", comparisons[[comparison]][[1]]," and ",str_flatten(comparisons[[comparison]][[2]], " + ") ),subtitle =str_c("Overlaps/intersection between cell cycle phase-wise DEG analyses" ),caption =str_c("The top ", n_genes, " DEGs for ", comparisons[[comparison]][[1]]," (left) and the top ", n_genes, " DEGs for ", str_flatten(comparisons[[comparison]][[2]], " + ")," (right)" ),y ="Condition",x ="DEGs" )return(plot)}one_dot_plot_overlaps()
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
lapply(names(overlaps), FUN = \(comp) {ggsave(one_dot_plot_overlaps(comparison = comp),filename =str_c("plots/", "deg_overlap_", comp, ".svg"),device ="svg", units ="in", width =12, height =5 )})
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
Warning message:
“Scaling data with a low number of groups may produce misleading results”
s <-"cc"new <-AddModuleScore(sobj, features = sigs, name =names(sigs))new
Warning message:
“The following features are not present in the object: Ddx39a, H2az2, H2az1, H2ax, not searching for symbol synonyms”
An object of class Seurat
32293 features across 12566 samples within 3 assays
Active assay: RNA (32285 features, 2000 variable features)
2 other assays present: ADT, HTO
2 dimensional reductions calculated: pca, umap
new[[]] %>% head
A data.frame: 6 × 25
orig.ident
nCount_RNA
nFeature_RNA
nCount_ADT
nFeature_ADT
nCount_HTO
nFeature_HTO
percent.mt
hto
sample
⋯
Phase
old.ident
RNA_snn_res.0.8
seurat_clusters
stress_signature1
is_stressed
cc1
young2
aged3
stress4
<chr>
<dbl>
<int>
<dbl>
<int>
<dbl>
<int>
<dbl>
<chr>
<chr>
⋯
<chr>
<fct>
<fct>
<fct>
<dbl>
<chr>
<dbl>
<dbl>
<dbl>
<dbl>
AAACCCAAGAGACAAG-1
DB_AKC_citeseq
11976
3437
128
4
32
3
2.104208
HTO2
37c_no_t
⋯
G1
HTO2
0
0
0.19599848
stressed
0.03920330
-0.149312883
-0.01416662
0.19209645
AAACCCAAGAGTGAAG-1
DB_AKC_citeseq
21028
5475
54
4
108
4
2.425338
HTO3
ice_t
⋯
S
HTO3
1
1
-0.10710847
not_stressed
0.10166306
-0.142437271
-0.04962019
-0.10621570
AAACCCAAGCGAAACC-1
DB_AKC_citeseq
10688
2813
56
3
87
2
4.519087
HTO4
37c_t
⋯
G1
HTO4
5
5
-0.04234327
not_stressed
-0.06231414
0.005144908
-0.05448123
-0.04383476
AAACCCAAGGTAAAGG-1
DB_AKC_citeseq
10627
3677
68
4
79
4
2.888868
HTO1
ice_no_t
⋯
G1
HTO1
2
2
-0.04919840
not_stressed
-0.04869483
-0.107309223
-0.04362710
-0.05414716
AAACCCAAGGTCTACT-1
DB_AKC_citeseq
16865
3915
106
4
99
2
2.514082
HTO4
37c_t
⋯
S
HTO4
7
7
-0.08366769
not_stressed
0.15123558
-0.007321353
-0.07141288
-0.08157760
AAACCCAAGTCGGCCT-1
DB_AKC_citeseq
13939
4192
60
3
75
2
3.285745
HTO3
ice_t
⋯
G1
HTO3
2
2
-0.09381362
not_stressed
-0.09269975
-0.104607233
0.03109269
-0.09134155
cols <-c("gray", "lightcoral", "red")
cc <-FeaturePlot(new, features ="cc1", coord.fixed = T, order = T, cols = cols) +ggtitle("Cell cycle signature")young <-FeaturePlot(new, features ="young2", coord.fixed = T, order = T, cols = cols) +ggtitle("Young signature")aged <-FeaturePlot(new, features ="aged3", coord.fixed = T, order = T, cols = cols) +ggtitle("Aged signature")ccyoungaged